CouchDB একটি RESTful API প্রদান করে, যা HTTP প্রোটোকলের মাধ্যমে ডেটাবেসের সাথে যোগাযোগ এবং ডেটা ম্যানিপুলেশন করতে সক্ষম। REST API ব্যবহার করে আপনি CRUD (Create, Read, Update, Delete) অপারেশনগুলি সম্পাদন করতে পারবেন, এবং CouchDB এর বিভিন্ন ফিচার যেমন ডকুমেন্ট ম্যানেজমেন্ট, কুয়েরি, রেপ্লিকেশন এবং আরও অনেক কিছু পরিচালনা করা যাবে।
CouchDB এর REST API একটি JSON ভিত্তিক API, যা HTTP রিকুয়েস্ট (GET, PUT, POST, DELETE) ব্যবহার করে যোগাযোগ করে। CouchDB এ প্রতিটি ডেটাবেস এবং ডকুমেন্টের সাথে যোগাযোগ HTTP রিকুয়েস্টের মাধ্যমে ঘটে।
CouchDB REST API এর মূল উপাদান
- Database Operations (ডেটাবেস অপারেশন)
Create a Database
নতুন একটি ডেটাবেস তৈরি করতে PUT রিকুয়েস্ট পাঠাতে হবে।PUT /{db_name}উদাহরণ:
PUT /mydatabaseList Databases
সকল ডেটাবেসের তালিকা পেতে GET রিকুয়েস্ট পাঠাতে হবে।GET /_all_dbsএটি সকল ডেটাবেসের নামের একটি অ্যারে প্রদান করবে।
Delete a Database
একটি ডেটাবেস মুছে ফেলতে DELETE রিকুয়েস্ট পাঠাতে হবে।DELETE /{db_name}উদাহরণ:
DELETE /mydatabase
- Document Operations (ডকুমেন্ট অপারেশন)
Create a Document
একটি নতুন ডকুমেন্ট তৈরি করতে POST রিকুয়েস্ট পাঠাতে হবে, এবং ডেটা JSON ফরম্যাটে পাঠাতে হবে।POST /{db_name}উদাহরণ:
POST /mydatabase { "name": "John Doe", "age": 30 }Read a Document
একটি নির্দিষ্ট ডকুমেন্ট পড়তে GET রিকুয়েস্ট পাঠাতে হবে, যেখানে ডকুমেন্টের _id প্রদান করতে হবে।GET /{db_name}/{doc_id}উদাহরণ:
GET /mydatabase/12345Update a Document
একটি ডকুমেন্ট আপডেট করতে PUT রিকুয়েস্ট পাঠাতে হবে এবং ডকুমেন্টের _id এবং _rev প্রদান করতে হবে।PUT /{db_name}/{doc_id}উদাহরণ:
PUT /mydatabase/12345 { "_rev": "1-abc", "name": "Jane Doe", "age": 32 }Delete a Document
একটি ডকুমেন্ট মুছে ফেলতে DELETE রিকুয়েস্ট পাঠাতে হবে এবং _rev প্রদান করতে হবে।DELETE /{db_name}/{doc_id}?rev={rev_id}উদাহরণ:
DELETE /mydatabase/12345?rev=1-abc
- View and Query Operations (ভিউ এবং কুয়েরি অপারেশন)
List Views
একটি ডেটাবেসের সমস্ত ভিউ দেখতে GET রিকুয়েস্ট পাঠাতে হবে।GET /{db_name}/_design/{design_doc}/_view/{view_name}উদাহরণ:
GET /mydatabase/_design/design_doc/_view/view_nameQuery Views
কাস্টম কুয়েরি তৈরি করতে, আপনি MapReduce এর মাধ্যমে views তৈরি এবং কুয়েরি করতে পারেন।GET /{db_name}/_design/{design_doc}/_view/{view_name}?key={key_value}উদাহরণ:
GET /mydatabase/_design/design_doc/_view/view_name?key="John Doe"
- Replication Operations (রেপ্লিকেশন অপারেশন)
Start Replication
CouchDB রেপ্লিকেশন শুরু করতে POST রিকুয়েস্ট পাঠাতে হবে।POST /_replicateউদাহরণ:
POST /_replicate { "source": "source_db", "target": "target_db" }
- Changes Feed (চেঞ্জেস ফিড)
Track Changes in a Database
CouchDB একটি _changes এন্ডপয়েন্ট প্রদান করে, যা ডেটাবেসে হওয়া পরিবর্তনগুলোর একটি ফিড প্রদান করে।GET /{db_name}/_changesউদাহরণ:
GET /mydatabase/_changes
CouchDB REST API উদাহরণ
1. ডেটাবেস তৈরি
PUT /mydatabase
2. ডকুমেন্ট তৈরি
POST /mydatabase
{
"name": "Alice",
"age": 25
}
3. ডকুমেন্ট পড়া
GET /mydatabase/1a2b3c4d
4. ডকুমেন্ট আপডেট
PUT /mydatabase/1a2b3c4d
{
"_rev": "1-xyz",
"name": "Alice",
"age": 26
}
5. ডকুমেন্ট মুছে ফেলা
DELETE /mydatabase/1a2b3c4d?rev=1-xyz
CouchDB REST API এর সুবিধা
- সিম্পল এবং ফ্লেক্সিবল: CouchDB-এর REST API সহজে ব্যবহারযোগ্য এবং JSON ফরম্যাটে ডেটার সাথে কাজ করা সহজ করে তোলে।
- HTTP ভিত্তিক: HTTP প্রোটোকল ব্যবহার করে, যেকোনো প্ল্যাটফর্ম বা প্রোগ্রামিং ভাষা থেকে সহজেই অ্যাক্সেস করা সম্ভব।
- ডিস্ট্রিবিউটেড রেপ্লিকেশন: CouchDB রেপ্লিকেশন সমর্থন করে, যা ডেটাকে একাধিক সার্ভারে সিঙ্ক্রোনাইজ করে এবং ডিস্ট্রিবিউটেড অ্যাপ্লিকেশনগুলির জন্য উপযুক্ত।
- কাস্টম কুয়েরি সমর্থন: View এবং MapReduce ফাংশনের মাধ্যমে কাস্টম কুয়েরি তৈরি এবং চালানো যায়, যা ডেটাকে আরও কার্যকরভাবে বিশ্লেষণ করতে সাহায্য করে।
CouchDB REST API একটি শক্তিশালী ও নমনীয় সমাধান প্রদান করে, যা ডেটাবেস ম্যানেজমেন্ট, ডেটা রেপ্লিকেশন, এবং কুয়েরি অপারেশন সহজে করতে সক্ষম।
Read more